{
    "cells": [
        {
            "attachments": {},
            "cell_type": "markdown",
            "id": "307804a3-c02b-4a57-ac0d-172c30ddc851",
            "metadata": {},
            "source": [
                "# Chroma Index Demo"
            ]
        },
        {
            "attachments": {},
            "cell_type": "markdown",
            "id": "f7010b1d-d1bb-4f08-9309-a328bb4ea396",
            "metadata": {},
            "source": [
                "#### Creating a Chroma Index"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "d48af8e1",
            "metadata": {},
            "outputs": [],
            "source": [
                "import logging\n",
                "import sys\n",
                "\n",
                "logging.basicConfig(stream=sys.stdout, level=logging.INFO)\n",
                "logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "0ce3143d-198c-4dd2-8e5a-c5cdf94f017a",
            "metadata": {},
            "outputs": [],
            "source": [
                "import chromadb"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "667f3cb3-ce18-48d5-b9aa-bfc1a1f0f0f6",
            "metadata": {},
            "outputs": [],
            "source": [
                "chroma_client = chromadb.Client()\n",
                "chroma_collection = chroma_client.create_collection(\"quickstart\")"
            ]
        },
        {
            "attachments": {},
            "cell_type": "markdown",
            "id": "8ee4473a-094f-4d0a-a825-e1213db07240",
            "metadata": {},
            "source": [
                "#### Load documents, build the GPTChromaIndex"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "0a2bcc07",
            "metadata": {},
            "outputs": [],
            "source": [
                "from gpt_index import GPTChromaIndex, SimpleDirectoryReader\n",
                "from IPython.display import Markdown, display"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "68cbd239-880e-41a3-98d8-dbb3fab55431",
            "metadata": {},
            "outputs": [],
            "source": [
                "# load documents\n",
                "documents = SimpleDirectoryReader('../paul_graham_essay/data').load_data()"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "ba1558b3",
            "metadata": {},
            "outputs": [],
            "source": [
                "index = GPTChromaIndex.from_documents(documents, chroma_collection=chroma_collection)"
            ]
        },
        {
            "cell_type": "markdown",
            "id": "04304299-fc3e-40a0-8600-f50c3292767e",
            "metadata": {},
            "source": [
                "#### Query Index"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "35369eda",
            "metadata": {},
            "outputs": [],
            "source": [
                "# set Logging to DEBUG for more detailed outputs\n",
                "response = index.query(\"What did the author do growing up?\", chroma_collection=chroma_collection)"
            ]
        },
        {
            "cell_type": "code",
            "execution_count": null,
            "id": "bedbb693-725f-478f-be26-fa7180ea38b2",
            "metadata": {},
            "outputs": [],
            "source": [
                "display(Markdown(f\"<b>{response}</b>\"))"
            ]
        }
    ],
    "metadata": {
        "kernelspec": {
            "display_name": "chroma-gpt-index",
            "language": "python",
            "name": "python3"
        },
        "language_info": {
            "codemirror_mode": {
                "name": "ipython",
                "version": 3
            },
            "file_extension": ".py",
            "mimetype": "text/x-python",
            "name": "python",
            "nbconvert_exporter": "python",
            "pygments_lexer": "ipython3",
            "version": "3.9.16"
        },
        "vscode": {
            "interpreter": {
                "hash": "0ac390d292208ca2380c85f5bce7ded36a7a25670a97c40b8009630eb36cb06e"
            }
        }
    },
    "nbformat": 4,
    "nbformat_minor": 5
}